From: Keir Fraser Date: Mon, 16 Jun 2008 14:21:49 +0000 (+0100) Subject: amd svm: Do not touch (non-existent) attr and selector fields for GDTR X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~14192^2~62 X-Git-Url: https://dgit.raspbian.org/%22http:/www.example.com/cgi/%22https://%22%22/%22http:/www.example.com/cgi/%22https:/%22%22?a=commitdiff_plain;h=7280aab36008a5c2b4605b61847907f75f05b2d0;p=xen.git amd svm: Do not touch (non-existent) attr and selector fields for GDTR and IDTR in the VMCB in svm_set_segment_register(). This is just for clarity of code and to prevent any issues in the future. Signed-off-by: Keir Fraser --- diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c index 9af2032b41..3f0dd62ce2 100644 --- a/xen/arch/x86/hvm/svm/svm.c +++ b/xen/arch/x86/hvm/svm/svm.c @@ -574,10 +574,12 @@ static void svm_set_segment_register(struct vcpu *v, enum x86_segment seg, memcpy(&vmcb->tr, reg, sizeof(*reg)); break; case x86_seg_gdtr: - memcpy(&vmcb->gdtr, reg, sizeof(*reg)); + vmcb->gdtr.base = reg->base; + vmcb->gdtr.limit = (uint16_t)reg->limit; break; case x86_seg_idtr: - memcpy(&vmcb->idtr, reg, sizeof(*reg)); + vmcb->idtr.base = reg->base; + vmcb->idtr.limit = (uint16_t)reg->limit; break; case x86_seg_ldtr: memcpy(&vmcb->ldtr, reg, sizeof(*reg));